// Map 是对象Object的升级版,那升级在哪里？
const obj = {}

obj[true] = "value1"
obj[123] = "value2"

obj[{age:"foo",age:18}] = "value3"
obj[{age:"boo",age:19}] = "value4"

console.log(obj)

// 大家在这里有没有发现个位置，我们给对象设置属性时，
// 如果属性值是对象，那么属性名就会变成[object Object],那样岂不是就一个喽？

// 这时候就看Map的喽
const map = new Map()
const tom = {name: "tom"}
const foo = {name: "foo"}

map.set(tom, "tom")
map.set(foo, "foo")
map.set("key", "map")
// 在这里我们可以明显看到，将不同对象作为key 值时，依然成功，完美！
console.log(map)

// 下面我们认识下map 的一些方法和属性
// forEach
map.forEach((key, value)=>{
    console.log(key, value)
})

// has()
console.log(map.has("ddd"))

// delete
console.log(map.delete("key"))

// clear
map.clear()